package com.cola;

/**
 * @Grup:com.hxh
 * @Auther:cola
 * @Data:2021/3/9-2021-03-18:54
 * @version:1.0
 */
public class StringBufferDemo {


    public static void main(String[] args) {
        String a="a";
        String b="b";
        String c=a+b+1;//五个对象,常量和变量相加产生对象
        System.out.println(c);
        String d="a"+1+2+3+4+"b";//一个对象,编译器是常量//常量相加没有性能问题(编译器进行优化)
        //StringBuffer目的是用来解决字符串相加时带来性能的问题(常量与变量)
        //内部实现采用字符数组,默认数组的长度为16,超过数组大小时,动态扩充的算法时原来长度*2+2
        //当我们知道要添加的字符的长度时,建议使用带初始化容量的构造方法,来避免动态扩充的次数,来提高效率
        //线程安全的,会影响性能
        StringBuffer sb=new StringBuffer();
        sb.append(a).append(b).append(1);
        System.out.println(sb.toString());

        StringBuffer sb1=new StringBuffer("abc");
        System.out.println(sb.indexOf("1"));
    }
}
